package com.example.demo1.pk02readconfig;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Service;

@Service
public class ReadConfig {
    @Autowired
    private Environment environment;
    /*
    Environment 是外部化的抽象，是多种数据来源的集合。
    从中可以读取application 配置文件，环境变量，系统属性。
    使用方式在Bean 中注入Environment。调用它的getProperty(key)方法。
     */

    public void print(){
        //获取某个key的值
        String name = environment.getProperty("app.name");

        //判断key是否存在
        if(environment.containsProperty("app.name")){
            System.out.println("app.name is existing");
        }

        //读取key的值，转为期望类型，同时提供默认值
        Integer port = environment.getProperty("app.port", Integer.class, 8003);

        String str = String .format("读取的key值，name:%s, port=%d",name,port);
        System.out.println("str = "+ str);
    }
}
